using System.Threading.Tasks;
using Abp.Application.Services;
using Abp.Application.Services.Dto;
using ABCNet.Roles.Dto;
using ABCNet.Users.Dto;

namespace ABCNet.Users
{
    public interface IUserAppService : IAsyncCrudAppService<UserDto, long, PagedResultRequestDto, CreateUserDto, UserDto>
    {
        Task<ListResultDto<RoleDto>> GetRoles();

        //Task ChangeLanguage(ChangeUserLanguageDto input);

        Task<UserDto> GetUserInfo(EntityDto<long> input);

        Task<UserDto> CreateAdmin(CreateUserDto input);

        Task<PagedResultDto<UserFinancialListsDto>> GetUserFinancialPageList(FinancialQueryInput input);

        void Recharge(RechargeDto input);

        void Transfer(TransferDto input);

        Task ChangePassword(ChangePasswordDto input);

        Task ResttPassword(EntityDto input);

    }
}
